Merkle Signature Scheme
   HOME

TheInfoList



OR:

In
hash-based cryptography Hash-based cryptography is the generic term for constructions of cryptographic primitives based on the security of hash functions. It is of interest as a type of post-quantum cryptography. So far, hash-based cryptography is used to construct digita ...
, the Merkle signature scheme is a digital signature scheme based on
Merkle trees In cryptography and computer science, a hash tree or Merkle tree is a tree in which every "leaf" (node) is labelled with the cryptographic hash of a data block, and every node that is not a leaf (called a ''branch'', ''inner node'', or ''inode'') ...
(also called hash trees) and one-time signatures such as the Lamport signature scheme. It was developed by
Ralph Merkle Ralph C. Merkle (born February 2, 1952) is a computer scientist and mathematician. He is one of the inventors of public-key cryptography, the inventor of cryptographic hashing, and more recently a researcher and speaker on cryonics. Contribution ...
in the late 1970s and is an alternative to traditional digital signatures such as the
Digital Signature Algorithm The Digital Signature Algorithm (DSA) is a public-key cryptosystem and Federal Information Processing Standard for digital signatures, based on the mathematical concept of modular exponentiation and the discrete logarithm problem. DSA is a variant ...
or RSA. NIST has approved specific variants of the Merkle signature scheme in 2020. An advantage of the Merkle signature scheme is that it is believed to be resistant against attacks by
quantum computers Quantum computing is a type of computation whose operations can harness the phenomena of quantum mechanics, such as superposition, interference, and entanglement. Devices that perform quantum computations are known as quantum computers. Though ...
. The traditional
public key Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic al ...
algorithms, such as RSA and
ElGamal In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie–Hellman key exchange. It was described by Taher Elgamal in 1985. ElGamal encryption is used in th ...
would become insecure if an effective quantum computer could be built (due to
Shor's algorithm Shor's algorithm is a quantum computer algorithm for finding the prime factors of an integer. It was developed in 1994 by the American mathematician Peter Shor. On a quantum computer, to factor an integer N , Shor's algorithm runs in polynom ...
). The Merkle signature scheme, however, only depends on the existence of secure
hash function A hash function is any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called ''hash values'', ''hash codes'', ''digests'', or simply ''hashes''. The values are usually ...
s. This makes the Merkle signature scheme very adjustable and resistant to quantum computer-based attacks. The Merkle signature is a ''one time signature'' with finite signing potential. The work of
Moni Naor Moni Naor ( he, מוני נאור) is an Israeli computer scientist, currently a professor at the Weizmann Institute of Science. Naor received his Ph.D. in 1989 at the University of California, Berkeley. His advisor was Manuel Blum. He works i ...
and
Moti Yung Mordechai M. "Moti" Yung is a cryptographer and computer scientist known for his work on cryptovirology and kleptography. Career Yung earned his PhD from Columbia University in 1988 under the supervision of Zvi Galil. In the past, he worked at th ...
on signature based one-way permutations and functions (and the invention of universal one-way hash functions) gives a way to extend a Merkle-like signature to a complete signature scheme.


Key generation

The Merkle signature scheme can be used to sign a limited number of messages with one public key \text. The number of possible messages must be a power of two, so we denote the possible number of messages as N = 2^n. The first step of generating the public key \text is to generate N private/public key pairs (X_i, Y_i) of some one-time signature scheme (such as the Lamport signature scheme). For each 1 \leq i \leq 2^n, a hash value of the public key h_i = H(Y_i) is computed. With these hash values h_i a
hash tree Hash, hashes, hash mark, or hashing may refer to: Substances * Hash (food), a coarse mixture of ingredients * Hash, a nickname for hashish, a cannabis product Hash mark *Hash mark (sports), a marking on hockey rinks and gridiron football fiel ...
is built, by placing these 2^n hash values as leaves and recursively hashing to form a binary tree. Let a_ denote the node in the tree with height i and left-right position j. Then, the hash values h_i = a_ are the leaves. The value for each inner node of the tree is the hash of the concatenation of its two children. For example, a_ = H(a_ , , a_) and a_ = H(a_ , , a_). In this way, a tree with 2^n leaves and 2^ - 1 nodes is built. The private key of the Merkle signature scheme is the entire set of (X_i, Y_i) pairs. A shortcoming with the scheme is that the size of the private key scales linearly with the number of messages to be sent. The public key \text is the root of the tree, a_. The individual public keys Y_i can be made public without breaking security. However, they are not needed in the public key, so they can be kept secret to minimize the size of the public key.


Signature generation

To sign a message M with the Merkle signature scheme, the signer picks a key pair (X_i, Y_i), signs the message using the one-time signature scheme, and then adds additional information to prove that the key pair used was one of the original key pairs (rather than one newly generated by a forger). First, the signer chooses a (X_i, Y_i) pair which had not previously been used to sign any other message, and uses the one-time signature scheme to sign the message, resulting in a signature \text' and corresponding public key Y_i. To prove to the message verifier that (X_i, Y_i) was in fact one of the original key pairs, the signer simply includes intermediate nodes of the Merkle tree so that the verifier can verify h_i = a_ was used to compute the public key a_ at the root of the tree. The path in the hash tree from a_ to the root is n + 1 nodes long. Call the nodes A_0, \ldots, A_n, with A_0 = a_ = H(Y_i) being a leaf and A_n = a_ = \text being the root. A_i is a child of A_. To let the verifier calculate the next node A_ given the previous, they need to know the other child of A_, the sibling node of A_i. We call this node \text_i, so that A_ = H(A_i , , \text_i). Hence, n nodes \text_0, \ldots, \text_ are needed, to reconstruct A_n = a_ = \text from A_0 = a_. An example of an authentication path is illustrated in the figure on the right. Together, the nodes \text_, \ldots, \text_, the Y_i, and the one-time signature \text' constitute a signature of M using the Merkle signature scheme: \text = (\text' , , Y_i , , \text_0 , , \text_1 , , \ldots , , \text_). Note that when using the Lamport signature scheme as the one-time signature scheme, \text' contains a part of the private key X_i.


Signature verification

The receiver knows the public key \text, the message M, and the signature \text = (\text' , , Y_i , , \text_0 , , \text_1 , , \ldots , , \text_). First, the receiver verifies the one-time signature \text' of the message M using the one-time signature public key Y_i. If \text' is a valid signature of M, the receiver computes A_0 = H(Y_i) by hashing the public key of the one-time signature. For j = 1, \ldots, n - 1, the nodes of A_j of the path are computed with A_j = H(A_ , , \text_). If A_n equals the public key \text of the Merkle signature scheme, the signature is valid.


References

* E. Dahmen, M. Dring, E. Klintsevich, J. Buchmann, L.C. Coronado Garca. "CMSS - an improved merkle signature scheme". Progress in Cryptology - Indocrypt 2006, 2006. * E. Klintsevich, K. Okeya, C.Vuillaume, J. Buchmann, E.Dahmen. "Merkle signatures with virtually unlimited signature capacity". 5th International Conference on Applied Cryptography and Network Security - ACNS07, 2007. * S. Micali, M. Jakobsson, T. Leighton, M. Szydlo. "Fractal merkle tree representation and traversal". RSA-CT 03, 2003


External links


Efficient Use of Merkle Trees
- RSA labs explanation of the original purpose of Merkle trees + Lamport signatures, as an efficient one-time signature scheme.
An introduction to hash-based signatures and Merkle signatures by Adam Langley.

A 4 parts series on hash-based signatures by David Wong.
{{Cryptography navbox , public-key Digital signature schemes Hash-based cryptography Post-quantum cryptography Public-key cryptography